package com.wc.alorithm_blue_bridge._思维.Q3046;

import java.util.*;
/**
 * @Author congege
 * @Description
 *
 * @Date Created in 2023/11/29-21:26
 */
public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int n = scan.nextInt();
        int[] array = new int[n + 1];
        for(int i = 1; i <= n; i++){
            array[i] = scan.nextInt();
        }
        // dpl[i] 表示 1 到 i 的最长递增子序列长度
        int[] dpl = new int[n + 1];

        for(int i = 1; i <= n; i++){
            // 长度最少都是 1
            dpl[i] = 1;
            for(int j = 1; j < i; j++){
                if(array[i] >= array[j]){
                    // 当大于时候，当前array[i]是可以排列在array[j]前面,所以是长度 + 1
                    dpl[i] = Math.max(dpl[j] + 1,dpl[i]);
                }
            }
        }
        // dpr[i] 表示 n 到 i 的最长递减子序列长度
        int[] dpr = new int[n + 1];
        for(int i = n; i >= 1; i--){
            dpr[i] = 1;
            for(int j = n; j > i; j--){
                if(array[i] >= array[j]){
                    // 同理
                    dpr[i] = Math.max(dpr[j] + 1,dpr[i]);
                }
            }
        }
        int ans = n;
        for(int i = 1; i <= n; i++){
            // -1 是因为多加了一个array[i]本身
            ans = Math.min(n - (dpl[i] + dpr[i] - 1),ans);
        }

        System.out.println(ans);
        scan.close();
    }
}
